# -*- coding:utf-8 -*-
"""
@Author : 审心
@Time : 2023/3/24 14:45
base64编码相关工具
"""
import base64
import os

from common.utils import FileUtil


def file_to_base64(path: str, is_remove: bool = False) -> str:
    """
    将文件转为 base64 编码格式
    :param path:  文件路径
    :param is_remove: 是否删除本地文件
    :return:  base64 字符串
    :rtype: str
    """
    with open(path, 'rb') as f:
        file_data = f.read()
    if is_remove:
        os.remove(path)
    return base64.b64encode(file_data).decode('utf8')


def base64_to_file(base64_str: str, file_path: str, file_name: str) -> str:
    """
    将base64编码的字符串转换为文件，并返回文件路径
    :param base64_str: base64 字符串
    :param file_path: 文件路径
    :param file_name: 文件名称
    :return: 文件路径
    :rtype: str
    """
    if not os.path.exists(file_path):
        os.makedirs(file_path)
    file_path = os.path.join(file_path, file_name)

    with open(file_path, "wb") as f:
        f.write(base64.b64decode(base64_str))

    return file_path
